package ar.com.gals.service;

import java.util.UUID;

import ar.com.gals.domain.Archivo;
import ar.com.gals.error.GalsException;
import ar.com.gals.repository.ArchivoRepository;


public class ArchivoService extends AbstractService<Archivo> {

	public ArchivoService() {
		this.domain = Archivo.class;
	}
	
	
	public String findFileName(String extension) throws GalsException {
		
		String fileName = "";
		
		try
		{
			this.beginTransaction();
			
			boolean findFile = false;
			
			while(!findFile) {
				fileName = UUID.randomUUID().toString().split("-")[0].toUpperCase() + "." + extension;
				Archivo archivo = new ArchivoRepository(this.session).getByName(fileName);
				findFile = (archivo == null);
			}
			
			this.commit();
		}
		catch(Exception e) {
			
			this.rollback();
			
			throw new GalsException(e.getMessage());
		}
		
		return fileName;
	}

}
